package com.itheima.relfect;

import com.itheima.domain.Person;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

/**
 * 获取构造方法
 *      因为所有的构造方法名字都相同 所以获取的时候要根据参数列表
 *      创建对象
 *      Person person = constructor.newInstance("张三", 21, 23);
 *      如果用空参构造的话u也可以直接使用字节码文件的方法 上面的用的是获取构造方法再执行他得到的
 *      personClass.newInstance()
 */
public class ReflectDemo3 {

    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
        Class<Person> personClass = Person.class;

        Constructor<Person> constructor = personClass.getConstructor(String.class, int.class, int.class);

        //创建对象
        Person person = constructor.newInstance("张三", 21, 23);

        System.out.println(person);
    }
}
